<?xml version="1.0" encoding="UTF-8"?>
<!-- (c) 2008 Benjamin Schroeter
This file is part of JaDAL - Just another DSL-Tools Addon Library
and licensed under the New BSD License
For more information please gos to http://www.codeplex.com/JaDAL -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="CompartmentMappings">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Connection" minOccurs="1" maxOccurs="unbounded"/>
        <xs:element ref="CompartmentShape" maxOccurs="unbounded"/>
        <xs:element ref="RegularShape" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="namespace" use="required" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="Connection">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Source"/>
        <xs:element ref="Target"/>
        <xs:element ref="Connector"/>
      </xs:sequence>
      <xs:attribute name="allowSelfReference" use="optional" type="xs:boolean"/>
      <xs:attribute name="allowsDuplicates" use="optional" type="xs:boolean"/>
      <xs:attribute name="name" use="required" type="xs:string"/>
      <xs:attribute name="suppressEntryDeletePropagation" use="optional" type="xs:boolean"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="Source">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="DomainClass"/>
        <xs:element ref="EntryDomainClass"/>
      </xs:sequence>
      <xs:attribute name="allowHead" use="optional" type="xs:boolean"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="Target">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="DomainClass"/>
        <xs:element ref="EntryDomainClass"/>
      </xs:sequence>
      <xs:attribute name="allowHead" use="optional" type="xs:boolean"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="Connector">
    <xs:complexType>
      <xs:attribute name="name" use="required" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="CompartmentShape">
    <xs:complexType>
      <xs:attribute name="name" use="required" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="RegularShape">
    <xs:complexType>
      <xs:attribute name="name" use="required" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="DomainClass">
    <xs:complexType>
      <xs:attribute name="name" use="required" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="EntryDomainClass">
    <xs:complexType>
      <xs:attribute name="name" use="required" type="xs:string"/>
    </xs:complexType>
  </xs:element>
</xs:schema>
